package net.jiupinshi.service.user;

import net.jiupinshi.dto.ExpenseApplyDTO;
import net.jiupinshi.dto.StoreSimpleDTO;
import net.jiupinshi.dto.UserDTO;
import net.jiupinshi.entity.ExpenseApply;
import net.jiupinshi.entity.Store;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Despription: 需要修改
 * @Author: penghui.guo
 * @Date: 2018/10/5 21:00
 */
public interface ExpenseApplyService {

    List<ExpenseApplyDTO> getExpenseApplys(String startDate, String endDate, Long applyUserId,
                                           Long storeId, byte status, Long expenseUserId, int start, int count);

    int getExpenseApplysCount(String startDate, String endDate, Long applyUserId,
                                           Long storeId, byte status, Long expenseUserId);

    int insertExpenseApplys(List<ExpenseApply> list);

    ExpenseApply getExpenseApplyById(Long id);

    ExpenseApplyDTO getExpenseApplyByUid(Long id, Long applyUserId);

    int updateExpenseApplys(Long operateUserId, byte status, String ids);

    List<StoreSimpleDTO> getToConfirmStoresByEUid(Long expenseUserId);

    Integer getToConfirmCountByEUid(Long expenseUserId);

    List<ExpenseApplyDTO> getExpenseApplysByUid(Long applyUserId);

    List<ExpenseApply> getExpenseApplysByPid(Long applyUserId, Long parentId);

    List<UserDTO> getApplyUsersByExpenseUid(Long expenseUserId);

    List<ExpenseApplyDTO> getExpenseApplyByStatusUid(Long applyUserId, Long operateUserId, Byte status, int start, int count);

    int getExpenseApplyCountByStatusUid(Long applyUserId, Long operateUserId, Byte status);

    Store getStoreByApplyExpenseId(Long id);

    List<Map<String, Object>> getExpenseApplyList(String startDate, String endDate, Long storeId, Byte status);

}
